home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / Spiele / GEMSPIEL / COLTRIS / SOURCES / INCLUDE / VAPROTO.H next >
Encoding:
C/C++ Source or Header  |  1995-02-28  |  17.2 KB  |  449 lines

  1. /*
  2.  * @(#) Gemini\vaproto.h
  3.  * @(#) Stefan Eissing, 11. Dezember 1994
  4.  *
  5.  *
  6.  * Beschreibung: Definition der Nachrichten des Venus <-> Accessory
  7.  * Protokolls
  8.  *
  9.  * 07.12.: AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDOW eingebaut.
  10.  * 21.10.94: AV_STARTED
  11.  * 31.10.94: AV_XWIND und VA_FONTCHANGED eingeführt.
  12.  *           Siehe auch die neue Bitbelegung in PROTOSTATUS
  13.  * 12.11.94  Neues Bit im PROTOSTATUS des Accessories zum "Quoten"
  14.  *           von Dateinamen
  15.  */
  16.  
  17. #ifndef __vaproto__
  18. #define __vaproto__
  19.  
  20. /* Message-Nummern für das xAcc-Protokoll von Konrad Hinsen
  21.  * Venus gibt bei ACC_ID "VENUS.APP" und Gemini gibt "GEMINI.APP"
  22.  * zurück. Gemini unterstützt xAcc der Stufe 0.
  23.  */
  24. #define ACC_ID        0x400
  25. #define ACC_OPEN    0x401
  26. #define ACC_CLOSE    0x402
  27. #define ACC_ACC        0x403
  28.  
  29. /* Message-Nummern für die Kommunikation zwischen Venus und
  30.  * verschiedenen Accesories.
  31.  * Sollten in Nachrichten Pfade oder Dateinamen vorkommen, so
  32.  * muß immer der absolute Pfad angegeben werden (also mit Laufwerk)
  33.  * und die Laufwerksbuchstaben müssen Großbuchstaben sein. Pfade
  34.  * sollten immer mit einem Backslash enden!
  35.  * Neu seit dem 12.11.94 ist, daß optional Namen auch mit einfachen
  36.  * Anführungszeichen versehen werden können. Siehe AV_PROTOKOLL.
  37.  *
  38.  * Nachrichten von Venus beginnen mit VA (Venus -> Accessory).
  39.  * Nachrichten an Venus beginnen mit AV (Accessory -> Venus).
  40.  *
  41.  * Mit AV_PROTOKOLL kann jedes Acc nachfragen, welche Nachrichten
  42.  * verstanden werden (Dies ist ja bei VENUS und GEMINI
  43.  * unterschiedlich! Es wäre schön, wenn auch andere Programme auf
  44.  * dieses Protokoll reagieren würden. Zumindest AV_SENDKEY ist
  45.  * sicher leicht zu implementieren und ist die einzige Methode, wie
  46.  * über Nachrichten Tastaturdrücke simuliert werden können.
  47.  *
  48.  * Unter normalem TOS fragt dazu ein Accessory, wenn es eine
  49.  * AC_CLOSE-Nachricht vom AES erhalten hat, die Applikation 0
  50.  * mit AV_PROTOKOLL, ob sie etwas davon versteht.
  51.  * Unter MultiTOS muß aber das Programm nicht mehr die ID 0
  52.  * haben, zudem kommt es (fast) nicht mehr zu AC_CLOSE-Nachrichten.
  53.  * Es können auch nicht nur Accessories, sondern auch normale
  54.  * Programme mit Gemini kommunizieren wollen. Was tun?
  55.  * Wenn es mehr als eine Hauptapplikation geben kann, dann sollte
  56.  * das Programm/Accessory versuchen, mit GEMINI Kontakt aufzunehmen.
  57.  * Die ID kann ja mit appl_find ermittelt werden. Scheitert dies, so
  58.  * kann noch nach AVSERVER oder dem Inhalt der (AES-)Environmentvariable
  59.  * AVSERVER gesucht werden. Besonders die letzte Möglichkeit erlaubt
  60.  * eine leichte Konfiguration "von außen". Die neuen Versionen der
  61.  * Library VAFUNC von Stephan Gerle (in gutsortierten Mailboxen
  62.  * erhältlich) verfahren fast genauso.
  63.  */
  64.  
  65. /* AV_PROTOKOLL: Mit dieser Nachrichtennummer sollte man bei
  66.  * anderen Applikationen und auch GEMINI nachfragen, ob
  67.  * und welche Nachrichten sie versteht.
  68.  */
  69. #define AV_PROTOKOLL        0x4700
  70. /*
  71.  * Word 6+7: Pointer auf den Accessorynamen, wie er bei
  72.  *           appl_find benutzt werden muß; also 8 Zeichen lang
  73.  *           nullterminiert (char name[9]).
  74.  * Die Bits in den Worten 3, 4 und 5 haben folgende Bedeutung:
  75.  * Word 3:
  76.  * Bit 0:        (VA_SETSTATUS)
  77.  * Bit 1:        (VA_START)
  78.  * Bit 2:       (AV_STARTED)
  79.  * Bit 3:       (VA_FONTCHANGED)
  80.  * Bit 4:       (Versteht und benutzt Quoting von Dateinamen)
  81.  *
  82.  * Alle anderen Bits sind für Erweiterungen reserviert und sollten
  83.  * daher mit 0 vorbesetzt werden. Das gilt natürlich auch für die
  84.  * Bits in den Worten 4 und 5.
  85.  * (Mehr zum Quoting siehe unten)
  86.  */
  87.  
  88. /* Macros zum Testen des Protkollstatus auf Quoting
  89.  */
  90. #define VA_ACC_QUOTING(a)        ((a) & 0x10)
  91. #define VA_SERVER_QUOTING(a)    ((a) & 0x40)
  92.  
  93. /* VA_PROTOSTATUS: Dem Sender von AV_PROTOKOLL wird mitgeteilt, daß
  94.  * der Empfänger etwas von diesem Protokoll weiß. Die Worte 3-7 des
  95.  * Nachrichtenpuffers enthalten die Information, welche Nachrichten
  96.  * verstanden werden. Gesetzte Bits stehen dafür, daß eine Nachricht
  97.  * (Nachrichtengruppe) verstanden werden.
  98.  */
  99. #define VA_PROTOSTATUS        0x4701
  100. /*
  101.  * Word 6+7: Pointer auf den Programmnamen, wie er bei
  102.  *           appl_find benutzt werden muß; also 8 Zeichen lang
  103.  *           nullterminiert (char name[9]).
  104.  * Die Bits in den Worten 3, 4 und 5 haben folgende Bedeutung:
  105.  * Word 3:
  106.  * Bit 0        (AV_SENDKEY)
  107.  * Bit 1        (AV_ASKFILEFONT)
  108.  * Bit 2        (AV_ASKCONFONT, AV_OPENCONSOLE)
  109.  * Bit 3        (AV_ASKOBJECT)
  110.  * Bit 4        (AV_OPENWIND)
  111.  * Bit 5        (AV_STARTPROG)
  112.  * Bit 6        (AV_ACCWINDOPEN, AV_ACCWINDCLOSED)
  113.  * Bit 7        (AV_STATUS, AV_GETSTATUS)
  114.  * Bit 8        (AV_COPY_DRAGGED)
  115.  * Bit 9        (AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDOW)
  116.  * Bit 10        (AV_EXIT)
  117.  * Bit 11       (AV_XWIND)
  118.  * Bit 12       (VA_FONTCHANGED)
  119.  * Bit 13        (AV_STARTED)
  120.  * Bit 14       (Versteht und benutzt Quoting von Dateinamen)
  121.  *
  122.  * Alle anderen Bits sind für Erweiterungen reserviert und sollten
  123.  * daher mit 0 vorbesetzt werden. Das gilt natürlich auch für die
  124.  * Bits in den Worten 4 und 5.
  125.  *
  126.  * AV_SENDKEY kann sicher jeder leicht in seine Programme einbauen.
  127.  * Bei AV_OPENWIND könnte ein Hauptprogramm auch seine "normale"
  128.  * Routine zum Öffnen eines Dokumentes anwerfen und dabei den
  129.  * übergebenen Pfad benutzen. Dies ist zusammen mit der Benutzung
  130.  * von TreeView sicher eine einfache Art, Dateien aus anderen Ordnern
  131.  * oder Laufwerken zu laden.
  132.  *
  133.  * Zu Bit 14 (im Server, z.B. Gemini), bzw. Bit 4 im Client
  134.  * (Accessory):
  135.  * Mit "Quoting" ist im VA-Protkoll gemeint, daß Dateinamen optional
  136.  * mit einfachen Anführungszeichen 'name' versehen werden können.
  137.  * Dies ist aber nur erlaubt, wenn beide Parteien (Server und Client)
  138.  * sich darüber einig sind (lies: beide es verstehen können).
  139.  * Wie geht das also vor sich? Angenommen Gemini schickt an ein
  140.  * Accessory einen Dateinamen, der ein Leerzeichen enthält. Ein Acc,
  141.  * das Quoting nicht kann, wird statt einem zwei Dateinamen erkennen,
  142.  * da normalerweise Leerzeichen Dateinamen trennen.
  143.  * Versteht das Acc aber Quoting (Bit 4 in seinem Protokollstatus),
  144.  * so wird Gemini den Dateinamen mit '' umgeben und das Acc erkennt,
  145.  * daß das Leerzeichen zum Dateinamen gehört.
  146.  * Gleiches gilt natürlich auch für Dateinamen, die von einem Acc
  147.  * an einen Server geschickt werden. Die Frage bleibt, wie man denn
  148.  * nun einfache Anführungszeichen überträgt. Nun, solche Zeichen,
  149.  * die zum Dateinamen gehören, werden einfach verdoppelt. Aus
  150.  * Julian's Profibuch wird für die Übertragung 'Julian''s Profibuch'.
  151.  * Einfach nicht? Nun, die Idee stammt nicht von mir, sondern wird
  152.  * genauso auch in Atari's Drag&Drop Protokoll benutzt.
  153.  */
  154.  
  155. /* AV_GETSTATUS: Ein Accessory erfragt bei Venus den aktuellen
  156.  * Status, den es Venus mit AV_STATUS mal gegeben hat.
  157.  */
  158. #define AV_GETSTATUS        0x4703
  159.  
  160. /* AV_STATUS: Ein Accessory kann Venus seinen Status mitteilen,
  161.  * der dann von Venus im INF-File gespeichert wird und mit
  162.  * AV_GETSTATUS wieder abgerufen werden kann.
  163.  * Zuvor MUSS es sich aber mit AV_PROTOKOLL anmelden!
  164.  * Word 3+4: Pointer auf einen String, der keine Steuerzeichen
  165.  *           enthalten darf und nicht länger als 256 Zeichen
  166.  *           sein darf. Dieser Pointer darf allerdings NULL sein.
  167.  */
  168. #define AV_STATUS            0x4704
  169.  
  170. /* VA_SETSTATUS: Venus teilt dem Accessory den abgespeicherten
  171.  * Status bei Nachfrage durch AV_GETSTATUS mit. Dieser kann dann
  172.  * von einem Accessory gesetzt werden.
  173.  * Word 3+4: Pointer auf einen String, der keine Steuerzeichen
  174.  *           enthält.
  175.  *           Dieser Pointer kann allerdings NULL sein, dann war
  176.  *           kein Status gespeichert.
  177.  */
  178. #define VA_SETSTATUS        0x4705
  179.  
  180. /* AV_SENDKEY: Ein Acc sendet VENUS/GEMINI einen Tastaturevent, den
  181.  * es selber vielleicht nicht versteht.
  182.  * Word 3 = Tastaturstatus                 ev_mmokstate
  183.  * Word 4 = Scancode der gedrückten Taste  ev_mkreturn
  184.  */
  185. #define    AV_SENDKEY            0x4710
  186.  
  187. /* VA_START: Accessory wird aktiviert. Word 3 + 4 enthalten einen
  188.  * Pointer auf eine Kommandozeile, der auch NULL sein kann.
  189.  * In der Kommandozeile stehen Pfade oder Dateinamen.
  190.  */
  191. #define VA_START            0x4711
  192.  
  193. /* AV_ASKFILEFONT: Frage nach dem eingestellten Zeichensatz
  194.  * für Dateinamen.
  195.  */
  196. #define AV_ASKFILEFONT        0x4712
  197.  
  198. /* VA_FILEFONT: Gibt den derzeit eingestellten Zeichensatz.
  199.  * Word 3 = Dateifontnummer (font id)
  200.  * Word 4 = Dateifontgröße (in points)
  201.  */
  202. #define VA_FILEFONT            0x4713
  203.  
  204. /* (Nur Gemini) AV_ASKCONFONT: Frage nach dem eingestellten
  205.  * Zeichensatz für das Console-Fenster.
  206.  */
  207. #define AV_ASKCONFONT        0x4714
  208.  
  209. /* VA_CONFONT: Gibt den derzeit eingestellten Zeichensatz.
  210.  * Word 3 = Consolefontnummer (font id)
  211.  * Word 4 = Consolefontgröße (in points)
  212.  */
  213. #define VA_CONFONT            0x4715
  214.  
  215. /* AV_ASKOBJECT: Fragt nach dem derzeit selektiertem Objekt.
  216.  * Es wird der Name des derzeit selektierten Objektes zurückgegeben.
  217.  * Ist kein Objekt selektiert, so ist der String leer.
  218.  * Sind mehrere Objekte selektiert, so sind ihre Namen durch Leer-
  219.  * zeichen getrennt.
  220.  */
  221. #define AV_ASKOBJECT    0x4716
  222.  
  223. /* VA_OBJECT: Gibt Namen der derzeit selektierten Objekte.
  224.  * Aufbau wie bei VA_START
  225.  */
  226. #define VA_OBJECT        0x4717
  227.  
  228. /* (Nur Gemini)AV_OPENCONSOLE: Venus soll das Console-Fenster öffnen.
  229.  * Ist es schon offen, so wird es nach vorne gebracht. Diese Aktion
  230.  * ist vor allen Dingen sinnvoll, wenn ein Accessory ein TOS-Programm
  231.  * mittels der system()-Funktion starten will (Warnung: Auf keinen
  232.  * Fall darf ein GEM-Programm von einem Accessory via system()
  233.  * gestartet werden! (siehe auch AV_STARTPROG)
  234.  * Auch sollte diese Nachricht nur auf ausdrücklichen Wunsch des
  235.  * Benutzers gebraucht werden, da es ihn sonst nur verwirren kann.
  236.  *
  237.  * ACHTUNG: Diese Nachricht steht nur in Gemini.app zur Verfügung.
  238.  */
  239. #define AV_OPENCONSOLE    0x4718
  240.  
  241. /* VA_CONSOLEOPEN: Gibt zurück, ob das Console-Fenster nach vorne
  242.  * gebracht worden ist. Word 3 == 0 (nein) != 0 (ja)
  243.  */
  244. #define VA_CONSOLEOPEN    0x4719
  245.  
  246. /* AV_OPENWIND: Venus soll ein Datei-Fenster öffnen.
  247.  * Dies sollte auch nur geschehen, wenn die Ursache für den
  248.  * Benutzer ersichtlich ist.
  249.  * Word 3+4 (Pointer) Pfad für das Fenster (s.o.).
  250.  * Word 5+6 (Pointer) Wildcard für darzustellende Dateien.
  251.  */
  252. #define AV_OPENWIND        0x4720
  253.  
  254. /* VA_WINDOPEN: Gibt an, ob das Fenster geöffnet werden konnte.
  255.  * siehe VA_CONSOLEOPEN
  256.  */
  257. #define VA_WINDOPEN        0x4721
  258.  
  259.  
  260. /* Word 7 in AV_STARTPROG und Word 4 und 7 in VA_PROGSTART sind
  261.  * neu seit dem 29. März 1992.
  262.  */
  263.  
  264. /* AV_STARTPROG: Venus soll ein Programm starten. Hierbei
  265.  * werden die angemeldeten Applikationen der Venus mit
  266.  * berücksichtigt. Man kann also auch eine Datei angeben, für
  267.  * die Venus dann ein Programm sucht.
  268.  * Word 3+4 (Pointer) Programmname mit kompletten Pfad
  269.  * Word 5+6 (Pointer) Kommandozeile (kann NULL sein)
  270.  * Word 7   Beliebiges 16-Bit Wort, das in VA_PROGSTART wieder
  271.  *          zurückgeliefert wird.
  272.  */
  273. #define AV_STARTPROG    0x4722
  274.  
  275. /* VA_PROGSTART: Gibt an, ob Venus das Programm startet.
  276.  * Word 3 == 0: nicht gestartet, != 0 gestartet
  277.  * Im Allgemeinen wird das Acc. im Fehlerfall sofort eine
  278.  * Nachricht bekommen. Wenn das Programm aber gestartet wird, erhält
  279.  * das Acc. diese Nachricht erst nach dem Start des Programms, da
  280.  * die Routine, die den Pexec macht nicht mehr wissen kann, das ein
  281.  * Acc. noch schnell eine Nachricht bekommen muß. Bei einem GEM-
  282.  * Programm, kann man der Erfolg auch an dem AC_CLOSE erkennen.
  283.  * Auch ist die Fehlererkennung nicht optimal. Der Rückgabewert weist
  284.  * auch nicht aus, das das Programm fehlerfrei gelaufen ist.
  285.  *
  286.  * Word 4   Returncode des gestarteten Programms (so vorhanden)
  287.  * Word 7   16-Bit Wort aus AV_STARTPROG
  288.  */
  289. #define VA_PROGSTART    0x4723
  290.  
  291. /* AV_ACCWINDOPEN: Mit dieser Nachricht kann ein Acc Venus mitteilen, daß
  292.  * es ein Fenster geöffnet hat.
  293.  * Word 3 AES-Handle des geöffneten Fensters
  294.  */
  295. #define AV_ACCWINDOPEN    0x4724
  296.  
  297. /* VA_DRAGACCWIND: Venus teilt dem Acc mit, daß Objekte auf eines seiner
  298.  * mittels AV_ACCWINDOPEN angemeldeten Fenster gezogen worden sind.
  299.  * Word 3   AES-Handle des Fensters
  300.  * Word 4   X-Position der Maus
  301.  * Word 5   Y-Position der Maus
  302.  * Word 6+7 Pointer auf einen String, der die Namen der Objekte enthält.
  303.  */
  304. #define VA_DRAGACCWIND    0x4725
  305.  
  306. /* AV_ACCWINDCLOSED: Acc teilt Venus mit, daß sein Fenster geschlossen
  307.  * wurde. Dies braucht das Acc nur in dem Fall zu tun, wenn es selbst das
  308.  * Fenster schließt. Bekommt es eine AC_CLOSE Mitteilung vom AES, so weiß
  309.  * Venus schon, daß alle Fenster weg sind.
  310.  * Word 3   AES-Handle des Fensters
  311.  */
  312. #define AV_ACCWINDCLOSED    0x4726
  313.  
  314.  
  315. /* Neu seit dem 11.04.1991!!!
  316.  */
  317.  
  318. /* AV_COPY_DRAGGED: Accessorie teilt Venus mit, daß die Objekte,
  319.  * die auf sein Fenster gezogen wurden, zu kopieren sind.
  320.  * Dies kann z.B. nach dem Ziehen von Objekten auf das TreeView-
  321.  * Fenster erwünscht sein. Diese Nachricht ist nur als Antwort
  322.  * auf VA_DRAGACCWIND gedacht.
  323.  * Word 3    Tastaturstatus (Alternate, Control, Shift)
  324.  * Word 4+5    Pointer auf einen String, der den Namen des Zielobjektes
  325.  *            enthält. Dies *muß* ein Pfad sein!
  326.  */
  327. #define AV_COPY_DRAGGED        0x4728
  328.  
  329. /* VA_COPY_COMPLETE: Antwort auf AV_COPY.
  330.  * Word 3    Status des Kopierens. (!= 0 heißt, daß wirklich etwas
  331.  *            kopiert oder verschoben wurde. Dies kann das Acc evtl.
  332.  *          zum Neuaufbau seines Fensters nutzen.)
  333.  */
  334. #define VA_COPY_COMPLETE    0x4729
  335.  
  336.  
  337. /* AV_PATH_UPDATE: Programm/Accessory teilt Gemini mit, daß sich
  338.  * der Inhalt eines Verzeichnisses geändert hat. Gemini stellt dann
  339.  * dieses Verzeichnis (so ein Fenster davon offen ist) neu dar. Dies
  340.  * wirkt auch auf die Unterverzeichnisse; Update von "C:\" sorgt
  341.  * dafür, daß alles, was mit Laufwerk C:\ zu tun hat, neu eingelesen
  342.  * wird.
  343.  *
  344.  * Word 3+4 Pointer auf den absolten Pfad
  345.  */
  346. #define AV_PATH_UPDATE        0x4730
  347.  
  348.  
  349. /* AV_WHAT_IZIT: Programm/Accessory fragt Gemini, was sich an
  350.  * Position X/Y auf dem Bildschirm befindet. Die Koordinaten sind
  351.  * normale Pixelkoordinaten mit Ursprung in der linken oberen
  352.  * Bildschirmecke. Antwort ist VA_THAT_IZIT.
  353.  * Word 3   X-Koordinate
  354.  * Word 4   Y-Koordinate
  355.  */
  356. #define AV_WHAT_IZIT        0x4732
  357.  
  358. /* VA_THAT_IZIT:
  359.  * Word 3   ID der zuständigen Applikation
  360.  * Word 4   Typ des Objektes
  361.  * word 5+6 Zeiger auf den Namen des Objektes (oder NULL, falls nicht
  362.  *          vorhanden)
  363.  *
  364.  * Typ ist wie folgt: (alle anderen für Erweiterungen reserviert.)
  365.  */
  366. #define    VA_OB_UNKNOWN    0
  367. #define VA_OB_TRASHCAN  1
  368. #define VA_OB_SHREDDER  2
  369. #define VA_OB_CLIPBOARD 3
  370. #define VA_OB_FILE      4
  371. #define VA_OB_FOLDER    5
  372. #define VA_OB_DRIVE        6
  373. #define VA_OB_WINDOW    7
  374.  
  375. #define VA_THAT_IZIT        0x4733
  376.  
  377. /* AV_DRAG_ON_WINDOW: Programm/Accessory teilt Gemini mit, daß
  378.  * Objekte auf eines seiner mittels AV_WHATIZIT erfragten Fenster
  379.  * gezogen worden sind. Die Namen sind Namen von Dateien, Ordnern
  380.  * oder Laufwerken, jeweils durch ein Leerzeichen getrennt. Namen
  381.  * von Ordnern oder Laufwerken enden mit einem Backslash.
  382.  *
  383.  * Word 3   X-Position, wohin die Maus gezogen wurde
  384.  * Word 4   Y-Position, wohin die Maus gezogen wurde
  385.  * Word 5   Tastaturstatus (Shift,Control,Alternate)
  386.  * Word 6+7 Pointer auf einen String, der die Namen der Objekte enthält.
  387.  *
  388.  * (nun implementiert, beachte daß sich die Belegung der Nachricht
  389.  *  leicht geändert hat. Das Fenster handle ist verschwunden und
  390.  *  dafür wurde der aktuelle Tastaturstatus eingefügt.)
  391.  *
  392.  */
  393. #define AV_DRAG_ON_WINDOW    0x4734
  394.  
  395. /* VA_DRAG_COMPLETE: Die Aktion, die mittels AV_DRAG_ON_WINDOW
  396.  * ausgelöst wurde (Kopieren, Verschieben, LÖschen oder ablegen
  397.  * auf den Hintergrund) ist beendet. Bei Erfolg wird ein Wert
  398.  * wie bei AV_COPY_COMPLETE zurückgeliefert.
  399.  * Word 3    Status der Aktion. (!= 0 heißt, daß wirklich etwas
  400.  *            kopiert oder verschoben wurde. Dies kann das Acc evtl.
  401.  *          zum Neuaufbau seines Fensters nutzen.)
  402.  */
  403. #define VA_DRAG_COMPLETE    0x4735
  404.  
  405. /* AV_EXIT: Ein Programm/Accessory teilt Gemini mit, daß es nicht
  406.  * mehr am Protokoll teilnimmt (normalerweisem, weil es beendet
  407.  * wurde).
  408.  * Word 3   AES-ID des Programms/Accessories
  409.  */
  410. #define AV_EXIT                0x4736
  411.  
  412. /* AV_STARTED: Ein Programm/Accessory teilt Gemini mit, daß es
  413.  * die VA_START Nachricht verstanden hat und der Speicher des
  414.  * Strings, der an die Nachricht angehängt war, freigegeben werden
  415.  * kann. Zum Erkennen um welche VA_START Nachricht es sich handelt,
  416.  * werden die Werte von VA_START zurückgeliefert.
  417.  * Word 3+4: exakt derselbe Inhalt der VA_START Nachricht.
  418.  */
  419. #define AV_STARTED          0x4738
  420.  
  421. /* VA_FONTCHANGED: Einer der in Gemini eingestellen Fonts hat
  422.  * sich geändert. Wird an alle Applikationen geschickt, die schon
  423.  * mal den Font von Gemini erfragt haben.
  424.  *
  425.  * Word 3 = Dateifontnummer   (font id)
  426.  * Word 4 = Dateifontgröße    (in points)
  427.  * Word 5 = Consolefontnummer (font id)
  428.  * Word 6 = Consolefontgröße  (in points)
  429.  */
  430. #define VA_FONTCHANGED        0x4739
  431.  
  432. /* AV_XWIND: Venus soll ein Datei-Fenster öffnen (eXtended).
  433.  * Dies sollte auch nur geschehen, wenn die Ursache für den
  434.  * Benutzer ersichtlich ist.
  435.  * Word 3+4 (Pointer) Pfad für das Fenster (s.o.).
  436.  * Word 5+6 (Pointer) Wildcard als Filter für Anzeige
  437.  * Word 7   Bitmaske  0x0001 - toppe evtl. vorhandenes Fenter
  438.  *                    0x0002 - Wildcard soll nur selektieren
  439.  *                           - alle anderen Bits auf 0 setzen!
  440.  */
  441. #define AV_XWIND        0x4740
  442.  
  443. /* VA_XOPEN: Gibt an, ob das Fenster geöffnet werden konnte.
  444.  * (Word 3 == 0 (nein) != 0 (ja))
  445.  */
  446. #define VA_XOPEN        0x4741
  447.  
  448. #endif
  449.